package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import java.util.*;
import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单明细(差旅)
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_travel`")
public class ExpenditureReimbursementTravelPo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 开始日期
    @Comment(value = "开始日期")
    @TableField(value = "`travel_start`", jdbcType = JdbcType.TIMESTAMP)
    private Date travelStart;

    // 结束日期
    @Comment(value = "结束日期")
    @TableField(value = "`travel_end`", jdbcType = JdbcType.TIMESTAMP)
    private Date travelEnd;

    // 开始地点
    @Comment(value = "开始地点")
    @Size(max = 100, message = "开始地点不能超过100个字符")
    @TableField(value = "`travel_position_start`", jdbcType = JdbcType.VARCHAR)
    private String travelPositionStart;

    // 结束地点
    @Comment(value = "结束地点")
    @Size(max = 100, message = "结束地点不能超过100个字符")
    @TableField(value = "`travel_position_end`", jdbcType = JdbcType.VARCHAR)
    private String travelPositionEnd;

    // 出差人
    @Comment(value = "出差人")
    @Size(max = 500, message = "出差人不能超过500个字符")
    @TableField(value = "`travel_people`", jdbcType = JdbcType.VARCHAR)
    private String travelPeople;

    // 出差人数
    @Comment(value = "出差人数")
    @TableField(value = "`travel_num`", jdbcType = JdbcType.INTEGER)
    private Integer travelNum;

    // 职级
    @Comment(value = "职级")
    @Size(max = 20, message = "职级不能超过20个字符")
    @TableField(value = "`travel_rank`", jdbcType = JdbcType.VARCHAR)
    private String travelRank;

    // 机票费
    @Comment(value = "机票费")
    @TableField(value = "`amount_plane`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountPlane;

    // 动车火车费
    @Comment(value = "动车火车费")
    @TableField(value = "`amount_train`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountTrain;

    // 车船费
    @Comment(value = "车船费")
    @TableField(value = "`amount_ship`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountShip;

    // 伙食补贴费
    @Comment(value = "伙食补贴费")
    @TableField(value = "`amount_catering`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCatering;

    // 住宿费
    @Comment(value = "住宿费")
    @TableField(value = "`amount_hotel`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountHotel;

    // 市内交通费
    @Comment(value = "市内交通费")
    @TableField(value = "`amount_car`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCar;

    // 保险费
    @Comment(value = "保险费")
    @TableField(value = "`amount_insurance`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountInsurance;

    // 其他费
    @Comment(value = "其他费")
    @TableField(value = "`amount_other`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountOther;

}
